package com.sanploy.file.service;

import com.sanploy.file.vo.FileVo;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.util.List;

public interface FileService {
    /**
     * 创建项目目录文件夹
     * @param name 项目文件夹名
     */
    public void createFirstFold(String name);

    /**
     * 查找所有项目文件夹名
     * @return
     */
    public List<String> findFirstFold();

    /**
     * 上传一般文件
     * @param projectName 项目名
     * @param directoryName 项目下文件夹名 没有为空
     * @param multipartHttpServletRequest 文件
     * @return
     */
    public  List<FileVo> uploadFile(String projectName, String directoryName,
                                    MultipartHttpServletRequest multipartHttpServletRequest);

    /**
     * 上传图片并按原图比例压缩转化为JPG格式
     * @param projectName 项目名
     * @param width 指定宽 为0则不压缩直接存储
     * @param height 指定高 为0则不压缩直接存储
     * @param compress 压缩方式 强制或者按比例
     * @param multipartHttpServletRequest 文件
     * @return
     */
    public List<FileVo> uploadImageToJpgCompress(String projectName, int width, int height, String compress,
                                                 MultipartHttpServletRequest multipartHttpServletRequest);

    /**
     * 上传图片
     * @param projectName 项目名
     * @param directoryName 项目下文件夹名 没有为空
     * @param multipartHttpServletRequest 文件
     * @return
     */
    public List<FileVo> uploadImage(String projectName, String directoryName, MultipartHttpServletRequest multipartHttpServletRequest);

    /**
     * 商城定制上传展示图片接口
     * @param projectName
     * @param multipartHttpServletRequest
     * @return 每个文件 返回3个地址，原图地址，实际尺寸图地址，缩略图地址
     */
    public List<FileVo> shopShowImage(String projectName, MultipartHttpServletRequest multipartHttpServletRequest);

}
